home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 351-375 / 351 / pdc / pdcsrc.lzh / PDC / memcpy.c < prev    next >
C/C++ Source or Header  |  1990-04-06  |  472b  |  35 lines

  1.  
  2. /*
  3.  * memcpy - copy bytes
  4.  */
  5.  
  6. #include "config.h"
  7.  
  8. VOIDSTAR
  9. memcpy(dst, src, size)
  10. VOIDSTAR dst;
  11. CONST VOIDSTAR src;
  12. SIZET size;
  13. {
  14.     register char *d;
  15.     register CONST char *s;
  16.     register SIZET n;
  17.  
  18.     if (size <= 0)
  19.         return(dst);
  20.  
  21.     s = src;
  22.     d = dst;
  23.     if (s <= d && s + (size-1) >= d) {
  24.         /* Overlap, must copy right-to-left. */
  25.         s += size-1;
  26.         d += size-1;
  27.         for (n = size; n > 0; n--)
  28.             *d-- = *s--;
  29.     } else
  30.         for (n = size; n > 0; n--)
  31.             *d++ = *s++;
  32.  
  33.     return(dst);
  34. }
  35.